home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xml / XMLStringUtilities.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  2.5 KB  |  106 lines

  1. package com.extensibility.xml;
  2.  
  3. import com.extensibility.util.StringUtilities;
  4. import java.util.Enumeration;
  5. import java.util.Hashtable;
  6. import java.util.Vector;
  7.  
  8. public class XMLStringUtilities extends StringUtilities {
  9.    public static int parseNameValuePair(String var0, int var1, String[] var2) throws StringIndexOutOfBoundsException {
  10.       var1 = StringUtilities.skipWhite(var0, var1);
  11.  
  12.       int var3;
  13.       for(var3 = var1; var1 < var0.length() && DTDParser.isNameChar(var0.charAt(var1)); ++var1) {
  14.       }
  15.  
  16.       var2[0] = var0.substring(var3, var1);
  17.       var1 = StringUtilities.skipWhite(var0, var1);
  18.       if (var0.charAt(var1++) != '=') {
  19.          throw new StringIndexOutOfBoundsException();
  20.       } else {
  21.          var1 = StringUtilities.skipWhite(var0, var1);
  22.          byte var4 = 39;
  23.          if (var0.charAt(var1) != '\'' && var0.charAt(var1) != '"') {
  24.             throw new StringIndexOutOfBoundsException();
  25.          } else {
  26.             if (var0.charAt(var1) == '"') {
  27.                var4 = 34;
  28.             }
  29.  
  30.             ++var1;
  31.  
  32.             for(var3 = var1; var1 < var0.length() && var0.charAt(var1) != var4; ++var1) {
  33.             }
  34.  
  35.             var2[1] = StringUtilities.unescapeSingleQuotes(var0.substring(var3, var1++));
  36.             var1 = StringUtilities.skipWhite(var0, var1);
  37.             return var1;
  38.          }
  39.       }
  40.    }
  41.  
  42.    public static Hashtable getNameValuePairs(String var0) throws StringIndexOutOfBoundsException {
  43.       Hashtable var1 = new Hashtable();
  44.       String[] var2 = new String[2];
  45.       int var3 = 0;
  46.  
  47.       while(var3 < var0.length()) {
  48.          var3 = parseNameValuePair(var0, var3, var2);
  49.          var1.put(var2[0], var2[1]);
  50.       }
  51.  
  52.       return var1;
  53.    }
  54.  
  55.    public static String[] getEntityRefs(String var0) {
  56.       int var1 = -1;
  57.       Vector var2 = new Vector();
  58.  
  59.       for(int var3 = 0; var3 < var0.length(); ++var3) {
  60.          char var4 = var0.charAt(var3);
  61.          if (var1 >= 0) {
  62.             if (var4 == ';') {
  63.                var2.addElement(var0.substring(var1, var3));
  64.                var1 = -1;
  65.             }
  66.          } else if (var4 == '&') {
  67.             var1 = var3 + 1;
  68.          }
  69.       }
  70.  
  71.       String[] var5 = new String[var2.size()];
  72.       var2.copyInto(var5);
  73.       return var5;
  74.    }
  75.  
  76.    public static String makeStubEntities(String[] var0) {
  77.       StringBuffer var1 = new StringBuffer();
  78.  
  79.       for(int var2 = 0; var2 < var0.length; ++var2) {
  80.          var1.append("<!ENTITY ");
  81.          var1.append(var0[var2]);
  82.          var1.append(" ''>");
  83.       }
  84.  
  85.       return var1.toString();
  86.    }
  87.  
  88.    public static String asAttributes(Hashtable var0) {
  89.       StringBuffer var1 = new StringBuffer();
  90.       Enumeration var2 = var0.keys();
  91.  
  92.       while(var2.hasMoreElements()) {
  93.          String var3 = (String)var2.nextElement();
  94.          String var4 = (String)var0.get(var3);
  95.          var1.append(var3);
  96.          var1.append(" = ");
  97.          var1.append(StringUtilities.quoted(var4, '\''));
  98.          if (var2.hasMoreElements()) {
  99.             var1.append(" ");
  100.          }
  101.       }
  102.  
  103.       return var1.toString();
  104.    }
  105. }
  106.